﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.ConstrainedExecution;
using System.Text;
using System.Threading.Tasks;

namespace 常用系统API
{
    /// <summary>
    /// 数组Api
    /// </summary>
    public class Array_Api
    {
        public void test()
        {
            int[] array = { 1, 2, 3,4,5 };
            Array.Clear(array);//全部清空

            //Clear 根据元素的类型，设置数组中某个范围的元素为零、为 false 或者为 null。
            Array.Clear(array,2,1);//从第二个索引开始清空，清空一个索引长度

            int[] array2 = new int[5];
            Array.Copy(array, array2, 0);//从array的第1位索引开始向后赋值到结尾，赋值完成后赋值给array2数组

            array.CopyTo(array2,2);//从array的第1位索引开始向后赋值到结尾，赋值完成后赋值给array2数组

            int a= array.Length;//数组的长度属性，(返回Int32类型)

            long b = array.GetLongLength(0);//获取指定索引位置以后的长度(返回long类型)

            int value =(int) array.GetValue(2);//获取指定索引位置元素的值，(返回Object类型)

            //IndexOf(Array, Object) 搜索指定的对象，返回整个一维数组中第一次出现的索引。
            int index = Array.IndexOf(array, 1);

            //Reverse(Array) 逆转整个一维数组中元素的顺序。
             Array.Reverse(array); //注意，本方法没有返回值，直接在内存中将原数组逆转或者重新创建一个数组，让改变变量指向。


            //排序
            Array.Sort(array);//改静态方法没有返回值。(从小到大排序),直接在内存中创建新的排序后的数组，然后将array变量指向新数组

            //想要从小到大排序怎么办？
            Array.Sort(array);
            Array.Reverse(array);
            
        }

    }
}
